Informatio

Goal

  • Usefulness
  • usable
  • fitting
  • efficient

Tufte Zitat

Publikum

Purpose

  • Exploratory vs. Explanatory
  • Kann oft über reines Zeigen der Daten hinausgehen.

Effizienz: Salienz von Informationen

Durch die Unterscheidbarkeit von grafischen Symbolen (visual features) soll grafische Informationen möglichst schnell aufgenommen werden, ohne lange überlegen zu müssen.

Dafür können die sog. Gestalt-Prinzipien genutzt werden.

Menschen nehmen Muster nach gewissen Prinzipien wahr. Die Regeln, nach denen wir Muster wahrnehmen, werden Gestalt-Prinzipien genannt, beispielsweise:

  • Nähe: Einander nahe Elemente werden als zusammengehörig wahrgenommen
  • Ähnlichkeit: Einander ähnliche Elemente werden als zusammengehörig wahrgenommen
  • Verbundene Elemente: Verbundene Elemente werden als zusammengehörig wahrgenommen
  • Gute Fortsetzung: Linien werden wahrgenommen, als folgten sie dem einfachsten Weg
  • Geschlossenheit: Unvollständige Elemente werden als vollständig wahrgenommen
  • Figur und Grund: Elemente sind entweder im Vorder- oder Hintergrund
  • Gemeinsames Schicksal: Elemente mit ähnlicher Bewegungsrichtung werden als zusammengehörig wahrgenommen

Salienz

Salienz durch visual features:

Quelle: Wong, B. (2010)

Gruppieren

Gruppierung durch Form

Gruppierung durch verbundene Elemente

Darstellung von Größen

Die Größe von Elemenen kann auch genutzt werden, um Daten zu kodieren.

Einschätzen von Größen

Die Größe von Kreisen einzuschätzen ist schwer!

Das gleiche gilt für Winkel!

Versuche, die Größen zu sortieren:

Das gleiche gilt für Winkel!

Kreis- bzw. Tortendiagramme sollten daher vermieden werden.

Farben

Farbe ist eine der wichtigsten Methoden, um Informationen zu [labeln], hervorzuheben, [Werte] zu kommunizieren, [Realität simulieren], und um zu designen und zu [dekorieren].

Foto von Efe Kurnaz auf Unsplash

Kategoriale vs. quantitative Daten

Kategoriale Daten

Verschiedene Farben, die sich gut unterscheiden lassen.

Quantitative Daten

Farbverläufe, die eine Reihenfolge haben.

ggplot2 setzt die entsprechende Skala schon automatisch!

Skalen mit Nullpunkt

  • Was zu beachten ist: unten Blau oben Rot … https://ggplot2-book.org/scales-colour.html

  • Vor allem für diskrete Gruppen geeignet

  • Farbverläufe schwieriger (aber es gibt color scales dafür)

  • Bestimmte Farben (Grün = gut, Rot = Gefahr)

  • Intervallskaliert/Verhältnisskaliert: Es gibt Nullpunkt: Divergierende Skalen

    • Kein Nullpunkt: Gleichmäßige Abstände zwischen Farbwerten
  • Ordinal: Richtung und gute Unterscheidbarkeit im Farbraum

  • Nominalskaliert: Spriale/Diagnoale im Farbraum

  • Diskret

  • Continuous

  • Binned Vorgefertigte Paletten:

Sequenziell
Qualitativ
Diverging

Farbwahrnehmung beim Menschen

Primärfarben des Lichts: Rot, Grün, Blau


By Original: Penubag Vector: Victor Blacus - Own work based on: Electromagnetic-Spectrum.png, CC BY-SA 3.0, Link
By BenRG - Own work, Public Domain, Link

Andere Tiere können auch mal mehr oder weniger haben:

Bild aus Farbsehen der Tiere
Foto von Ben Moreland auf Unsplash

Viele Tiere sehen nur grau

Warum überhaupt Farbwahrnehmung?

  • Konsistenz: Farbtöne sind unabhängig vom Licht wahrnehmbar.
  • Aber: More is not always better! Zu viel kann auch vom Wesentlichen ablenken.

Farbwahrnehmung ist also subjektiv, und bringt nur einen Vorteil, wenn eine Bedeutung daraus abgeleitet werden kann.

Foto von Chinh Le Duc auf Unsplash

More is not always better

ggplot(
  gapminder_2020,
  aes(x = gini, y = hapiscore_whr, color = world_4region)
) +
  geom_point(size = 3) +
  theme_bg() 

Mehr als sechs Farben sollten es auf keinen Fall werden!

Alternative: Facetting.

Farben

Ganglienzellen übertragen keine Informationen über absolute Helligkeit, sondern über relative Helligkeit.

Visualisierung kann nicht gut darin sein, absolute Werte zu kommunizieren (Tabellen können das besser). Aber: Unterschiede und Veränderungen.

Bild von Nature Methods.

Hier sind die Farben klar unterscheidbar, und der Gini-Index lässt sich gut ablesen.

Der Plot ist etwas sub-optimaler. Die tatsächlichen Werte des Gini-Index werden nicht gut kommuniziert.

Farbe ist relativ

Eigenschaften von Farben

Farbton, Sättigung, Helligkeit

Die drei Eigenschaften beschreiben das Aussehen von Farben.

Farbräume

  • RGB: Zusammenmischen von Licht der unterschiedlichen Farben. Alle drei zusammen ergeben weiß.
  • CMYK: Ausblenden aus dem weißen Farbspektrum durch Filter. Grundfarben: Gelb, Magenta (Purpur), Cyan (Blaugrün) (+K - Key (also Schwarz))

Salienz

Sticht eine Farbe hervor, ist sie besonders salient - das kann gewollt oder ungewollt sein.

Größe

Farbfehlsichtigkeit

protanopic right side

By Mark Fairchild, CC BY-SA 3.0, Link

  • Protanopie: Zapfentyp L (rot) fehlt: rot vs grün Schwäche

  • Deuteranopie: Zapfentyp M (grün) fehlt: rot vs grün Schwäche

  • Tritanopie: Zapfentyp S (blau) fehlt: blau vs grün, gelb vs violett Schwäche

  • Take the above scale and show that it is not great for color blindness

  • https://www.color-blindness.com/coblis-color-blindness-simulator/

Colorblind-Check

Auf Colblindor.

Mit colorblindcheck.

library(colorblindcheck)

palette_check(scales::hue_pal()(6), plot = TRUE)

          name n tolerance ncp ndcp  min_dist mean_dist max_dist
1       normal 6  28.22768  15   15 28.227682  48.60479 91.99894
2 deuteranopia 6  28.22768  15    9  5.870477  31.50134 59.55026
3   protanopia 6  28.22768  15    8  3.930855  32.79118 57.04317
4   tritanopia 6  28.22768  15    9  7.200490  40.41105 71.61725

Anwendung in ggplot2

Farben wählen

  • Name
  • rgb()
  • Nummer
  • Hex code

Farben manuell setzen

ggplot(
  continent_co2_pct,
  aes(
    x = world_6region,
    y = percentage,
    fill = world_6region
  )
) +
  geom_bar(stat = "identity", width = 1) +
  theme_minimal() +
  labs(title = "Share of global per capita CO2 consumption") +
  scale_fill_manual(values = c("red", "green", "blue", "yellow", "violet", "brown"))

my_color_scale <- c(
  "East Asia & Pacific" = "red",
  "South Asia" = "green",
  "Sub-Saharan Africa" = "blue",
  "Europe & Central Asia" = "yellow",
  "Middle East & North Africa" = "violet",
  "Americas" = "brown"
)

ggplot(
  continent_co2_pct,
  aes(
    x = world_6region,
    y = percentage,
    color = world_6region
  )
) +
  geom_bar(stat = "identity", width = 1) +
  theme_minimal() +
  labs(title = "Share of global per capita CO2 consumption 2020") +
  scale_color_manual(values = my_color_scale)

Wenn du in einem Projekt die gleichen Gruppen in verschiedenen Plots zeigst, setze die Farbskala einmal mit den Gruppennamen, damit die Gruppen in allen Plots die selben Farben bekommen.

Graustufen

ggplot(
  continent_co2_pct,
  aes(
    x = world_6region,
    y = percentage,
    fill = world_6region
  )
) +
  geom_bar(stat = "identity", width = 1) +
  theme_minimal() +
  labs(title = "Share of global per capita CO2 consumption 2020") +
  scale_fill_grey()

Externe Farb-Paletten

R Color Brewer

library(RColorBrewer)
display.brewer.all(colorblindFriendly = FALSE)

library(RColorBrewer)

ggplot(
  continent_co2_pct,
  aes(
    x = world_6region,
    y = percentage,
    fill = world_6region
  )
) +
  geom_bar(stat = "identity", width = 1) +
  theme_minimal() +
  labs(title = "Share of global per capita CO2 consumption") +
  scale_fill_brewer(palette = "PuOr")

Externe Farb-Paletten

paletteer

Sammlung von Paletten aus diversen Paketen

library(paletteer)

ggplot(
  continent_co2_pct,
  aes(
    x = world_6region,
    y = percentage,
    fill = world_6region
  )
) +
  geom_bar(stat = "identity", width = 1) +
  theme_minimal() +
  labs(title = "Share of global per capita CO2 consumption") +
  scale_fill_paletteer_d("LaCroixColoR::Orange")

Übung

  1. Baue eine eigene Farbpalette für deinen Plot und teste sie auf Farbfehlsichtigkeiten.